home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / zbpc_460.zip / UTILITY.EXE / SCRNDUMP.BAS < prev    next >
BASIC Source File  |  1991-05-16  |  4KB  |  120 lines

  1. DEFINTA-Z:DIMPrintbuffer(719)
  2.  
  3. "Look for command"
  4. DO:UNTILUSR3(1)<>0
  5. X$=INKEY$:IFLEN(X$)<1GOTO"Look for command"
  6. IFASC(X$)=3ORASC(X$)=27MODE3:END
  7.  
  8.       'Control-P generates a 16 for use as a Print-Screen Hot Key
  9. IFASC(X$)=16GOTO"Print Screen"
  10. FORX=457TO525:A(X)=D:NEXT:FORX=42TO458:IFHI>A(X)HI=A(X)
  11. NEXT:RETURN
  12.  
  13. "Print Screen"
  14. Print$=LEFT$(Printer$,1)
  15. Lines=200:IFAdjust!>1Lines=350:IFAdjust!>2Lines=480
  16. Width=640:IFVideo=3Width=720
  17. LONGIFPrint$="E"ORPrint$="I"
  18.    'E is Epson Dot Matrix, I is Itty-Bitty-Machine Graphics Printer
  19. COORDINATEWINDOW
  20. IFPrint$="I"LPRINTControl$+CHR$(65)+CHR$(8)+Control$+CHR$(50);
  21. IFPrint$="E"LPRINTControl$+CHR$(65);
  22.  
  23.      'This is the "Logic Seeking" routine
  24. FORY=0TOLines-1STEP8
  25.   FORX=0TOWidth-1:Bits=0
  26.     IFPOINT(X,Y)<>Color5THENBits=Bits+128
  27.     IFPOINT(X,Y+1)<>Color5THENBits=Bits+64
  28.     IFPOINT(X,Y+2)<>Color5THENBits=Bits+32
  29.     IFPOINT(X,Y+3)<>Color5THENBits=Bits+16
  30.     IFPOINT(X,Y+4)<>Color5THENBits=Bits+8
  31.     IFPOINT(X,Y+5)<>Color5THENBits=Bits+4
  32.     IFPOINT(X,Y+6)<>Color5THENBits=Bits+2
  33.     IFPOINT(X,Y+7)<>Color5THENBits=Bits+1
  34.     Printbuffer(X)=Bits
  35.   NEXTX
  36.   "PrintLine"
  37.   Pointer=0:Data$=""
  38.   "Parse Buffer"
  39.   FORX=PointerTOPointer+11:DataFound=DataFound+Printbuffer(X):NEXT
  40.   IFDataFound=0LPRINT" ";:GOTO"Update Pointer"
  41.   FORX=PointerTOPointer+11:Data$=Data$+CHR$(Printbuffer(X)):NEXT
  42.   LONGIFLEN(Data$)=252
  43.     LPRINTControl$+CHR$(76)+CHR$(252)+CHR$(0)+Data$;
  44.     Data$=""
  45.   ENDIF
  46.   "Update Pointer"
  47.   Pointer=Pointer+12:IFPointer>WidthGOTO"Line Finished"
  48.   GOTO"Parse Buffer"
  49.   "Line Finished"
  50.   LONGIFLEN(Data$)>0
  51.   LPRINTControl$+CHR$(76)+CHR$(LEN(Data$))+CHR$(0)+Data$;
  52.   ENDIF
  53.   LPRINT
  54. NEXTY
  55. LPRINTCHR$(12)
  56. ENDIF
  57. IFPrint$="I"ORPrint$="E"GOTO"Look for command"
  58.  
  59.          'This is the alternate dot matrix driver
  60. 'COORDINATEWINDOW
  61. 'IFPrint$="I"LPRINTControl$+CHR$(65)+CHR$(8)+Control$+CHR$(50);
  62. 'IFPrint$="E"LPRINTControl$+CHR$(65);
  63. 'LPRINTControl$+CHR$(76)+CHR$(128)+CHR$(2);
  64. '  FORX=0TOWidth-1:Bits=0
  65. '    IFPOINT(X,Y)<>Color5THENBits=Bits+128
  66. '    IFPOINT(X,Y+1)<>Color5THENBits=Bits+64
  67. '    IFPOINT(X,Y+2)<>Color5THENBits=Bits+32
  68. '    IFPOINT(X,Y+3)<>Color5THENBits=Bits+16
  69. '    IFPOINT(X,Y+4)<>Color5THENBits=Bits+8
  70. '    IFPOINT(X,Y+5)<>Color5THENBits=Bits+4
  71. '    IFPOINT(X,Y+6)<>Color5THENBits=Bits+2
  72. '    IFPOINT(X,Y+7)<>Color5THENBits=Bits+1
  73. '    LPRINTCHR$(Bits);
  74. '  NEXTX:LPRINT
  75. 'NEXTY
  76. 'LPRINTCHR$(12)
  77. ENDIF
  78. GOTO"Look for command
  79.  
  80.          'This is the laser printer routine
  81. LONGIFPrint$="L"
  82. COORDINATEWINDOW:WIDTHLPRINT=0
  83. IFWidth=640LPRINTControl$+"*p200x500Y";ELSELPRINTControl$+"*p100x500Y";
  84. LPRINTControl$+"*t100R";
  85. LPRINTControl$+"*r1A";
  86. FORY=0TOLines-1
  87. IFWidth=640LPRINTControl$+"*b80W";ELSELPRINTControl$+"*b90W";
  88.   FORX=0TOWidthSTEP8:Bits=0
  89.     IFPOINT(X,Y)<>Color5THENBits=Bits+128
  90.     IFPOINT(X+1,Y)<>Color5THENBits=Bits+64
  91.     IFPOINT(X+2,Y)<>Color5THENBits=Bits+32
  92.     IFPOINT(X+3,Y)<>Color5THENBits=Bits+16
  93.     IFPOINT(X+4,Y)<>Color5THENBits=Bits+8
  94.     IFPOINT(X+5,Y)<>Color5THENBits=Bits+4
  95.     IFPOINT(X+6,Y)<>Color5THENBits=Bits+2
  96.     IFPOINT(X+7,Y)<>Color5THENBits=Bits+1
  97.   LPRINTCHR$(Bits);
  98.   NEXTX
  99.  
  100.           'This is a "double-scan" routine for CGA graphics dump
  101. LONGIFLines=200
  102. IFWidth=640LPRINTControl$+"*b80W";ELSELPRINTControl$+"*b90W";
  103.   FORX=0TOWidthSTEP8:Bits=0
  104.     IFPOINT(X,Y)<>Color5THENBits=Bits+128
  105.     IFPOINT(X+1,Y)<>Color5THENBits=Bits+64
  106.     IFPOINT(X+2,Y)<>Color5THENBits=Bits+32
  107.     IFPOINT(X+3,Y)<>Color5THENBits=Bits+16
  108.     IFPOINT(X+4,Y)<>Color5THENBits=Bits+8
  109.     IFPOINT(X+5,Y)<>Color5THENBits=Bits+4
  110.     IFPOINT(X+6,Y)<>Color5THENBits=Bits+2
  111.     IFPOINT(X+7,Y)<>Color5THENBits=Bits+1
  112.   LPRINTCHR$(Bits);
  113.   NEXTX
  114. ENDIF
  115. NEXTY
  116. LPRINTControl$+"*rB";:LPRINTCHR$(12)
  117. ENDIF
  118.  
  119. GOTO"Look for command"
  120.